package com.wxzz.elearing.livetelecast.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.wxzz.elearing.livetelecast.dto.*;
import com.wxzz.elearing.livetelecast.entity.Activity;
import com.wxzz.elearing.livetelecast.entity.PlatformLivetelecast;
import com.wxzz.elearing.livetelecast.entity.WxUserPlatformLivetelecast;
import com.wxzz.elearning.common.vo.JgPageVo;
import com.wxzz.elearning.common.vo.ReturnVO;

import java.util.List;

/**
 * <p>
 * 服务类
 * </p>
 *
 * @author
 * @since 2021-04-02
 */
public interface IWxUserPlatformLivetelecastService extends IService<WxUserPlatformLivetelecast> {


    /**
     * 直播预约列表
     *
     * @param wxUserPlatformLivetelecastDto
     * @return
     */
    ReturnVO<List<JgPageVo<WxUserPlatformLivetelecast>>> listWxUserPlatformLivetelecast(WxUserPlatformLivetelecastDto wxUserPlatformLivetelecastDto);

    /**
     * 观看列表
     *
     * @param wxUserPlatformLivetelecastDto
     * @return
     */
    ReturnVO<List<JgPageVo<WxUserPlatformLivetelecast>>> selectWatchPlatformLivetelecast(WxUserPlatformLivetelecastDto wxUserPlatformLivetelecastDto);

    /**
     * 邀请达人榜(总后台)
     *
     * @param adminListInvitedWxUserDto
     * @return
     */
    ReturnVO<JgPageVo<List<WxUserPlatformLivetelecast>>> adminListInvitedWxUser(AdminListInvitedWxUserDto adminListInvitedWxUserDto);

    /**
     * 查询该用户的邀请人员
     * @param invitedWxUserDto
     * @return
     */
    ReturnVO<JgPageVo<List<WxUserPlatformLivetelecast>>> listInvitedWxUser(InvitedWxUserDto invitedWxUserDto);

    /**
     * 展示我的看过的直播列表
     *
     * @return
     */
    ReturnVO<JgPageVo<List<PlatformLivetelecast>>> selectMyWatchPlatformLivetelecast(Long wxUserId, MyWatchPlatformLivetelecastDto myWatchPlatformLivetelecastDto);

    /**
     * 收藏或取消直播/活动
     *
     * @param platformLivetelecastCollectInsDto
     * @return
     */
    ReturnVO savePlatformLivetelecastCollect(Long wxUserId, PlatformLivetelecastCollectInsDto platformLivetelecastCollectInsDto);

    /**
     * 列出收藏的活动
     *
     * @param wxUserId
     * @param activityCollectDto
     * @return
     */
    ReturnVO<JgPageVo<List<Activity>>> listActivityCollect(Long wxUserId, ActivityCollectDto activityCollectDto);

    /**
     * 列出收藏的直播
     *
     * @param wxUserId
     * @return
     */
    ReturnVO<JgPageVo<List<PlatformLivetelecast>>> listPlatformLivetelecastCollect(Long wxUserId, PlatformLivetelecastCollectDto platformLivetelecastCollectDto);

}
